package com.sky.config;

import com.sky.properties.AliOssProperties;
import com.sky.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

//阿里oss配置类,用来生成AiliOssUtil对象,并交由IOC容器管理
@Slf4j
@Configuration
public class AilOssConfiguration {
    @Bean
    //  创建阿里云文件上传客户端, AliOssProperties 是一个用于封装阿里云 OSS 配置属性的 Java Bean。
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties) {
//        通过配置类,使用Bean注解将AliOssUtil对象放到容器中,方便后续使用@Autowired进行注入,获取阿里云文件上传客户端
  // 记录日志信息，表示即将开始创建阿里云 OSS 的文件上传客户端工具类
log.info("初始化,开始创建阿里云文件上传客户端");
// 创建 AliOssUtil 实例，并传入必要的配置参数
AliOssUtil aliOssUtil = new AliOssUtil(
        // 获取 OSS 服务的访问域名（如：oss-cn-beijing.aliyuncs.com）
        aliOssProperties.getEndpoint(),
        // 获取阿里云 AccessKey ID，用于身份认证
        aliOssProperties.getAccessKeyId(),
        // 获取阿里云 AccessKey Secret，用于签名请求的身份验证
        aliOssProperties.getAccessKeySecret(),
        // 获取默认使用的 OSS Bucket 名称（存储空间名称）
        aliOssProperties.getBucketName()
);

// 返回创建好的阿里云 OSS 工具类实例，供后续使用（例如上传、下载文件）
return aliOssUtil;

    }
}
